package com.neuedu.his.controller;

import com.neuedu.his.po.Constanttype;
import com.neuedu.his.service.ConstanttypeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/constanttype")
public class ConstanttypeController {

    @Autowired
    private ConstanttypeService constanttypeService;

    /**
     * 新增常数类型
     * @param constanttype 前端传递的常数类型对象(包含所有属性，id自增)
     * @return 操作结果
     */
    @PostMapping("/add")
    public boolean addConstantType(@RequestBody Constanttype constanttype) {
        // 确保新增时DelMark为1(未删除)
        constanttype.setDelmark(1);
        return constanttypeService.save(constanttype);
    }

    /**
     * 逻辑删除常数类型(修改DelMark为0)
     * @param constanttype 前端传递的常数类型对象(包含所有属性)
     * @return 操作结果
     */
    @PostMapping("/delete")
    public boolean deleteConstantType(@RequestBody Constanttype constanttype) {
        // 设置删除标记为0
        constanttype.setDelmark(0);
        return constanttypeService.updateById(constanttype);
    }

    /**
     * 修改常数类型
     * @param constanttype 前端传递的常数类型对象(包含所有属性)
     * @return 操作结果
     */
    @PostMapping("/update")
    public boolean updateConstantType(@RequestBody Constanttype constanttype) {
        return constanttypeService.updateById(constanttype);
    }

    /**
     * 根据ID获取常数类型详情
     * @param id 常数类型ID
     * @return 常数类型对象
     */
    @GetMapping("/detail/{id}")
    public Constanttype getConstantTypeDetail(@PathVariable Integer id) {
        return constanttypeService.getById(id);
    }

    /**
     * 获取所有常数类型列表
     * @return 常数类型列表
     */
    @GetMapping("/all")
    public List<Constanttype> getAllConstantTypes() {
        // 只返回未删除的数据（DelMark=1）
        return constanttypeService.lambdaQuery().eq(Constanttype::getDelmark, 1).list();
    }
}